package com.exam.service.interfaces;

import com.exam.domain.User;
import com.exam.domain.UserMessage;
import com.exam.service.Service;

import java.util.List;

/**
 * Created by jly on 2016/11/17.
 */
public interface UserService extends Service {

    /**
     * 根据登录用户名查询密码
     * @param username
     * @since: 2016-12-20
     * @author: jly
     */
    String selectPassowrdByUserName(String username);

    /**
     * 用户登录操作
     * @param: username
     * @return: passowrd
     *
     * @since: 2016-12-20
     * @author: jly
     * */
    User loginMessage(String username);

    /**
     * 用户个人信息
     * @Param: username
     * @return: UserMassage 类型的用户相关信息
     * @since: 2016-12-21
     * @author: jly
     * */
    UserMessage userInfo(String username);

    /**
     * 修改密码
     *
     * @param:  newpsw 新密码
     *          username 用户名
     * @since: 2016-12-21
     * @author: jly
     * */
    boolean updatePassowrd(String newpsw, String username);

    /**
     * 修改个人信息
     *
     * @param:  username 用户名
     *          name 姓名
     *          mail 邮箱
     * @since: 2016-12-21
     * @author: jly
     * */
    boolean updateUserInfo(String username, String name, String mail);

    /**
     * 查看人员列表
     *
     * @return: UserMassage 类型的用户列表及相关信息
     * @since: 2017-2-7
     * @author: jly
     * */
    List<UserMessage> userList(String username, String name, int roleId);

    /**
     * 添加用户具体操作
     *
     * @return: 返回操作成功与否
     * @since: 2017-2-12
     * @author: jly
     * */
    boolean addUserOperate(String username, String name, int roleid, String mail);

    /**
     * 判断用户名是否已经存在
     *
     * @return: int result> 0 存在
     * @Since: 2017-2-12
     * @author: jly
     * */
    int userExist(String username);

    /**
     * 管理员修改用户信息（姓名，角色，邮箱）
     *
     * @return: boolean 是否修改成功
     * @Since: 2017-2-12
     * @author: jly
     * */
    boolean modifyUserMessage(String truename, String mail, int role, int userid);

    /**
     * 删除用户
     *
     * @return: boolean 是否删除成功
     * @Since: 2017-2-13
     * @author: jly
     * */
    boolean deleteUser(int userid);

    int getTotal();

    List<User> getusers(Integer page, Integer rows);
}
